gl renderer: Don't render unblurred text shadows to a texture
authorTimm Bäder <mail@baedert.org>
Fri, 1 Dec 2017 10:02:26 +0000 (11:02 +0100)
committerTimm Bäder <mail@baedert.org>
Thu, 21 Dec 2017 18:12:31 +0000 (19:12 +0100)
We can do the same thing by simply drawing the text in the given shadow
color.

gsk/gl/gskglrenderer.c

index e356316f581d773cd0997f6afe7f84050ee018c4..782e5b4c7a5d6666ace37c0382e906fffe2c1241 100644 (file)
@@ -1142,6 +1142,18 @@ gsk_gl_renderer_add_render_ops (GskGLRenderer   *self,
                 continue;
               }
 
+            if (gsk_render_node_get_node_type (child) == GSK_TEXT_NODE)
+              {
+                offset_matrix = builder->current_modelview;
+                graphene_matrix_translate (&offset_matrix, &GRAPHENE_POINT3D_INIT (shadow->dx, shadow->dy, 0));
+                prev_modelview = ops_set_modelview (builder, &offset_matrix);
+
+                render_text_node (self, child, builder, &shadow->color, TRUE);
+
+                ops_set_modelview (builder, &prev_modelview);
+                continue;
+              }
+
             add_offscreen_ops (self, builder, min_x, max_x, min_y, max_y, child, &texture_id, &is_offscreen);
 
             ops_set_program (builder, &self->shadow_program);